﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Work10
{
    class Program
    {
        static void Main(string[] args)
        {
            //一维数组

            int[] rt = new int[6];             //语法形式一    数值类型的初始值为0
            string[] str = new string[4];      //              引用类型的初始值为null

            double[] arr = { 4, 6, 25, 687.667, 34 };  //语法形式二

            Console.WriteLine(arr[0]);  //数组的下标从 0 开始
            Console.WriteLine(arr[arr.Length-1]);  //数组中的最后一个元素是数组的长度减 1

            string[] tre = new string[3] { "微积分", "高阶导数", "极限" };  //语法形式三


            //求数组的最小值
            int[] x = new int[5];
            Console.WriteLine("请输入5个整数：");
            for (int i = 0; i < x.Length; i++)
            {
                x[i] = int.Parse(Console.ReadLine());//用Parse语句将字符串类型转换成整型
            }
            int min = x[0];//设x[0]为最小
            for (int i = 1; i < x.Length; i++)
            {
                if (x[i] < min)
                {
                    min = x[i];
                }
            }
            Console.WriteLine("数组中的最小值为：{0}",min);




            //二维数组   在 C# 语言里多维数组中比较常用的是二维数组

            //在遍历多维数组元素时使用 GetLength(维度) 方法能获取多维数组中每一维的元素，维度
            //也是从 0 开始的，因此获取数组中第一维的值时使用的是 scores.GetLength(0)。

            double[,] scores = { { 66, 85 }, { 100, 99 }, { 86.5, 89 } };
            //定义多维数组时，每多一个维度则在定义时的[]中增加一个“,”。存取数组中的值也是将下标用“,”隔开。
            for (int i = 0; i < scores.GetLength(0); i++)
            {
                Console.WriteLine("第" + (i + 1) + "个学生的成绩为：");
                for (int j = 0; j < scores.GetLength(1); j++)
                {
                    Console.Write(scores[i, j] + " ");
                }
                Console.WriteLine();
            }



            //foreach循环
            //foreach 语句中的表达式由关键字 in 隔开的两个项组成。
            //in 右边的项是集合名，in 左边的项是变量名，用来存放该集合中的每个元素。

            double[] marks = { 66, 88, 83.5, 95, 73 };
            double sum = 0;
            double avg = 0;
            foreach (double point in marks)
            {
                sum = sum + point;
            }
            avg = sum / marks.Length;
            Console.WriteLine("总得分为:{0}",sum);
            Console.WriteLine("平均得分为{0}",avg);



            //Split
            // Split 方法用于按照指定的字符串来拆分原有字符串，并返回拆分后得到的字符串数组。

            Console.WriteLine("请输入一个字符串：");
            string cfe = Console.ReadLine();
            string[] condition = { "!" };
            string[] result = cfe.Split(condition, StringSplitOptions.None);
            //当拆分的字符串类似于“a,b,c,d,”时，string[] result = cfe.Split(condition, StringSplitOptions.RemoveEmptyEntries)
            //得到的结果result个数要减一
            Console.WriteLine("字符串中含有感叹号的个数为：" + (result.Length - 1));



        }
    }
}
